1. Field of the Invention
The present invention generally relates to computer databases. More specifically, the present invention relates to database applications for searching, querying, and rendering data retrieved from an underlying physical database using a database abstraction model.
2. Description of the Related Art
Databases are well known systems for information storage and retrieval. The most prevalent type of database used today is the relational database, which stores data using a set of tables that may be reorganized and accessed in a number of different ways. A relational database management system (DBMS) uses relational techniques for storing and retrieving data.
Structured Query Language (SQL) is a standardized database language that includes commands for retrieving, storing, updating, and deleting data stored in a relational database. An SQL query is constructed as a text string that must conform to the strict grammar and syntax requirements of the SQL query language. Further, an SQL query must be semantically correct to perform as desired by the user. That is, many syntactically correct SQL statements may fail to perform as desired due to semantic errors.
Although SQL provides a flexible and powerful method to query a relational database, most average users, and even many sophisticated users, find it very difficult to compose an SQL query that retrieves the desired query results. For example, consider a relational database storing data about patients at a hospital or research institution. Such a database might include tables that store patient demographic information, test results data, diagnoses, patient visits, doctor notes etc. Querying such a database using SQL requires a user to, at a minimum, identify what tables might include data that the user is interested in seeing, specify which columns from theses tables to include in the query results, provide selection criteria used to evaluate what data from the columns to include in query results, and specify how to join data from different tables together.
Forcing users to think about data in terms of tables, rows, and columns, however, distorts the way users understand and conceive queries. That is, users typically conceive of data from a logical perspective, according to relationships between data and a central entity or concept that a user wishes to query, i.e., a model entity. For example, using the relational database described above, a user may be interested in querying the database to learn about “patients” or interested in searching for patients whose records contain certain search terms. Users often desire to compose a query that will identify instances of a model entity (e.g., a patient) with certain attributes or with data that contains certain search terms (e.g., patients with data referencing melanoma). Moreover, to users interacting with a database application, the collection of data that makes a patient compelling is the totality of information captured about them, regardless of where or how it is stored within physical tables in the system.
Thus, a user's logical view of data (as entities and attributes) is often disconnected from the physical mechanisms used to store data (tables, rows, and columns). Accordingly, there is a need for database query techniques that do not force users to view data according to the physical mechanisms used to store data. Query techniques should provide users with the ability to query a central entity or concept using a set of search terms, and users should be presented with query results that conform to a logical view or understanding of data.